﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace QuanLyDoiXe
{
    public partial class MH_CapNhienLieu : Form
    {
        public string ID;
        public int MaNV;
        public MH_CapNhienLieu(string ID,int MaNV)
        {
            InitializeComponent();
            this.ID = ID;
            this.MaNV = MaNV;
        }
        private void btQuayLai_Click(object sender, EventArgs e)
        {
            new MH_QuanLy(ID, MaNV).Show();
            this.Close();
        }

        private void tbMaXe_TextChanged(object sender, EventArgs e)
        {
            if (tbMaXe.Text == "")
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbBinh.Clear();
                tbDinhMuc.Clear();

                return;
            }
            XeBus xBus = new XeBus();
            IEnumerable<XE> xDto;
            xDto = xBus.LayXe(Convert.ToInt32(tbMaXe.Text));
            if (xDto.Count() != 0)
            {
                tbBienSo.Text = xDto.Single().BienSo;
                tbTrongTai.Text = xDto.Single().LOAITRONGTAI.LoaiKg.ToString();
                tbBinh.Text = xDto.Single().DungTichBinh.ToString();
                ThamSoBus tsBus = new ThamSoBus();
                int Muc=tsBus.MucCapXang();
                int DungTich = Convert.ToInt32( xDto.Single().DungTichBinh);
                double DinhMuc = (double)Muc / 100 * DungTich;
                tbDinhMuc.Text = DinhMuc.ToString();

            }
            else
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbBinh.Clear();
                tbDinhMuc.Clear();
                return;
            }
        }

        private void tbMaXe_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void btLamLai_Click(object sender, EventArgs e)
        {
            tbMaXe.Clear();
            tbChisoCu.Clear();
            tbSoLitCap.Clear();
        }

        private void btTiepNhan_Click(object sender, EventArgs e)
        {
            if (tbMaXe.Text == "")
            {
                MessageBox.Show("Chưa Nhập Mã Xe!");
                return;
            }
            if (tbChisoCu.Text == "")
            {
                MessageBox.Show("Chưa Nhập Chỉ Số Cũ!");
                return;
            }
            ThamSoBus tsBus= new ThamSoBus();
            if (Convert.ToInt32(tbChisoCu.Text) >= Convert.ToInt32(tbDinhMuc.Text))
            {
                MessageBox.Show("Chưa Dưới Định Mức Cần Cấp Thêm!");
                return;
            }
            if (Convert.ToInt32(tbSoLitCap.Text) > tsBus.SoLitToiDa())
            {
                MessageBox.Show("Quá Mức Cho Phép Đổ Tối Đa!");
                return;
            }
            if (Convert.ToInt32(tbSoLitCap.Text) > Convert.ToInt32(tbBinh.Text)-Convert.ToInt32(tbChisoCu.Text))
            {
                MessageBox.Show("Dư Lượng Nhiên Liệu Trong Bình!");
                return;
            }
            CAPNHIENLIEU nlDto = new CAPNHIENLIEU();
            NhienLieuBus nlBus = new NhienLieuBus();
            nlDto.MaPhieu = nlBus.LayMa();
            nlDto.MaXe = Convert.ToInt32(tbMaXe.Text);
            nlDto.NgayCap = dtNgayCap.Value;
            nlDto.DinhMuc = Convert.ToInt32(tbDinhMuc.Text);
            nlDto.MaNV = MaNV;
            nlDto.SoLitCap = Convert.ToInt32(tbSoLitCap.Text);
            nlDto.ChiSoCu = Convert.ToInt32(tbChisoCu.Text);
            nlBus.CapNhienLieu(nlDto);
            MessageBox.Show("Cấp Nhiên Liệu Thành Công!");
            DGPhieu.DataSource = nlBus.CapNhienLieu();
        }

        private void MH_CapNhienLieu_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'quanLyDoiXeDataSetCapNhienLieu.CAPNHIENLIEU' table. You can move, or remove it, as needed.
          
            NhienLieuBus nlBus= new NhienLieuBus();
            DGPhieu.DataSource = nlBus.CapNhienLieu();

        }



    }
}
